<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/vue.js"></script>
    <style>
        li {
            list-style: none;
        }
    </style>
</head>

<body>
    <div id="app">
        <div>
            <button @click="list.sort((a,b)=>a-b)">排序</button>
        </div>

        <div>
            <button @click="list.push(Math.round(Math.random()*10))">生成</button>
        </div>

        <ul>
            <!-- 先循环9次 在依次判断该元素是否渲染 -->
            <li v-for="(item,index) in list" v-if="item % 2 == 0" :key="index">{{item}}</li>
        </ul>

        <!-- 先判断list中是否存在数据,有数据在渲染-->
        <ul v-if="list.length">
            <li v-for="(item,index) in list" :key="index">{{item}}</li>
        </ul>

        <!-- 先找到偶数 => 判断是否存在  => 在渲染 -->
        <ul v-if="list.filter(v=>v%2==0).length">
            <li v-for="(item,index) in list.filter(v=>v%2==0)" :key="index">{{item}}</li>
        </ul>

        <!-- 计算属性  -->
        <ul v-if="evenList.length">
            <li v-for="(item,index) in evenList" :key="index">{{item}}</li>
        </ul>

       

    </div>
</body>
<script>
    // v-for 和 v-if 同时使用:
    // 注意我们不推荐在同一元素上使用 v-if 和 v-for 
    // 当它们处于同一节点，v-for 的优先级比 v-if 更高，这意味着 v-if 将分别重复运行于每个 v-for 循环中。当你只想为部分项渲染节点时，这种优先级的机制会十分有用

    new Vue({
        el: "#app",
        data: {
            list: [1, 4, 7, 2, 5, 8, 3, 6, 9],
        },
        computed:{
            evenList:function(){
                return this.list.filter(v=>v);
            }
        }
    })


</script>

</html>